package net.ibizsys.modelingadv.devcenter.service;

import java.util.List;
import org.springframework.data.domain.Page;

import net.ibizsys.modelingadv.devcenter.dto.psdevcentersvn.PSDevCenterSVNDTO;
import net.ibizsys.modelingadv.devcenter.dto.psdevcentersvn.PSDevCenterSVNFilterDTO;
import net.ibizsys.modelingadv.devcenter.dto.psdevcentersvn.PSDevCenterSVNSimpleDTO;

/**
 * 实体[PSDEVCENTERSVN]服务对象接口
 * 
 * 可通过实体运行时对象[PSDevCenterSVNDERuntime]进行功能扩展
 */
public interface IPSDevCenterSVNService extends net.ibizsys.central.dataentity.service.IDEService<PSDevCenterSVNDTO, PSDevCenterSVNFilterDTO>{

    /**
     * 行为: Create
     */
    String ACTION_CREATE = "Create";
    /**
     * 行为: Update
     */
    String ACTION_UPDATE = "Update";
    /**
     * 行为: Remove
     */
    String ACTION_REMOVE = "Remove";
    /**
     * 行为: Get
     */
    String ACTION_GET = "Get";
    /**
     * 行为: GetDraft
     */
    String ACTION_GETDRAFT = "GetDraft";
    /**
     * 行为: CheckKey
     */
    String ACTION_CHECKKEY = "CheckKey";
    /**
     * 行为: GitSync
     */
    String ACTION_GITSYNC = "GitSync";
    /**
     * 行为: Save
     */
    String ACTION_SAVE = "Save";
    /**
     * 查询: 当前应用中心
     */
    String DATAQUERY_CURDC = "CurDC";
    /**
     * 查询: 当前应用中心（仅用户自建）
     */
    String DATAQUERY_CURDC2 = "CurDC2";
    /**
     * 查询: 当前方案
     */
    String DATAQUERY_CURSLN = "CurSln";
    /**
     * 查询: 当前方案（仅用户自建）
     */
    String DATAQUERY_CURSLN2 = "CurSln2";
    /**
     * 查询: 数据查询
     */
    String DATAQUERY_DEFAULT = "DEFAULT";
    /**
     * 查询: 基础属性查询
     */
    String DATAQUERY_SIMPLE = "SIMPLE";
    /**
     * 查询: 默认（全部数据）
     */
    String DATAQUERY_VIEW = "VIEW";
    /**
     * 集合: 当前应用中心
     */
    String DATASET_CURDC = "CurDC";
    /**
     * 集合: 当前应用中心(自建)
     */
    String DATASET_CURDC2 = "CurDC2";
    /**
     * 集合: 当前方案
     */
    String DATASET_CURSLN = "CurSln";
    /**
     * 集合: 当前方案(自建)
     */
    String DATASET_CURSLN2 = "CurSln2";
    /**
     * 集合: 数据集
     */
    String DATASET_DEFAULT = "DEFAULT";

    /**
     * 行为: Create
     *
     */
    void create(PSDevCenterSVNDTO dto) throws Throwable;
    /**
     * 行为: Update
     *
     */
    void update(PSDevCenterSVNDTO dto) throws Throwable;
    /**
     * 行为: Remove
     *
     */
    void remove(List<String> keys) throws Throwable;
    /**
     * 行为: Get
     *
     */
    PSDevCenterSVNDTO get(String key) throws Throwable;
    /**
     * 行为: GetDraft
     *
     */
    PSDevCenterSVNDTO getDraft(PSDevCenterSVNDTO dto) throws Throwable;
    /**
     * 行为: CheckKey
     *
     */
    Integer checkKey(PSDevCenterSVNDTO dto) throws Throwable;
    /**
     * 行为: GitSync
     *
     */
    void gitSync(PSDevCenterSVNDTO dto) throws Throwable;
    /**
     * 行为: Save
     *
     */
    void save(PSDevCenterSVNDTO dto) throws Throwable;

    /**
     * 集合: 当前应用中心
     *
     */
    Page<PSDevCenterSVNDTO> fetchCurDC(PSDevCenterSVNFilterDTO dto) throws Throwable; 
    /**
     * 集合: 当前应用中心(自建)
     *
     */
    Page<PSDevCenterSVNDTO> fetchCurDC2(PSDevCenterSVNFilterDTO dto) throws Throwable; 
    /**
     * 集合: 当前方案
     *
     */
    Page<PSDevCenterSVNDTO> fetchCurSln(PSDevCenterSVNFilterDTO dto) throws Throwable; 
    /**
     * 集合: 当前方案(自建)
     *
     */
    Page<PSDevCenterSVNDTO> fetchCurSln2(PSDevCenterSVNFilterDTO dto) throws Throwable; 
    /**
     * 集合: 数据集
     *
     */
    Page<PSDevCenterSVNDTO> fetchDefault(PSDevCenterSVNFilterDTO dto) throws Throwable; 
}
